1. Field of the Invention
The present invention relates to a method, a system, and a computer program product for accessing and utilizing information in a database. More particularly, the present invention relates to a method, a system, and a computer program product for determining relationships between a query object and objects in a database.
2. Description of the Prior Art
Databases are used to organize information according to any number of techniques. Database types include, but are not limited to, Quadtrees, B-trees, and R-trees. Each of these database types is more suitable for storing and organizing a particular type of data. Generally, R-trees are used to store multi-dimensional data. These R-trees store spatial objects formed by aggregating minimum bounding contours. Each node in an R-tree represents a region in space. A child node of a node in an R-tree represents a sub-region of the region in space represented by the node.
The number of objects that are aggregated in each node is permitted to range between m≦(M/2) and M, thereby leading to the use of the prefix (m, M) to characterize a particular R-tree and mirror the effects of a B-tree. The root node in an R-tree has at least two entries unless it is a leaf node, in which case it has just one entry corresponding to the minimum bounding contour of an object. The R-tree is height-balanced with the maximum height represented by logmr.
An R-tree is constructed in either a dynamic or a static manner. Dynamic construction of an R-tree builds the R-tree as objects are input into the R-tree. Static construction of an R-trees builds the R-tree after all the objects have been input into the R-tree. Statically constructed R-trees are usually characterized as being packed since knowing all of the data in advance permits each R-tree node to be filled to its maximum capacity.
An R-tree can include data concerning locations of features in space or on a surface. Spatial data can include geometric data that includes simple primitive elements such as lines, curves, polygons (with and without holes), compound elements that are made up of a combination of the primitive elements, and geographical data concerning the location of various objects in a region. Geographical data can include mathematical representations of counties, cities, homes, apartment buildings, parks, businesses, subway stations, and other features. The geographical data can be in the form of latitude and longitude or other data that defines position.
Once an R-tree is created it is typically desired to access and utilize the data stored in the R-tree. One way that the data in an R-tree is utilized involves determining the relative positions of particular objects, such as finding certain types of businesses in a zip code. The analysis of objects in spatial and/or geographic databases, such as R-trees, to determine relationships, such as overlapping regions and point-by-point continuity, is performed using sophisticated mathematical algorithms.
Typically, these mathematical algorithms implement a post-processing function to a candidate query result set to generate a final result set. The post-processing function includes loading each object in the candidate query result set and performing an exact point-by-point comparison of each object in the final result set with a query object. The loading of each object in the candidates query result set and comparing each object in the candidate query result set to the query object uses a substantial amount of memory and computing power, takes an unacceptable period of time, and costs a substantial amount of money.
Thus, there is a need for a method of determining relationships between a query object and objects in a database. There is a need for the method to reduce the number of geometries in a candidate result set. There is a need for the method to be applicable where query objects are large or small. There is a need for the method to decrease the amount of time required to execute the mathematical algorithm for determining relationships between objects. There is a need for the method to be applicable to large geographical databases.